package ar.uade.distribuidas.tpo.dba.dominio;

import javax.persistence.*;

import ar.uade.distribuidas.tpo.base.dominiodto.RodamientoDTO;

@Entity
@Table(name = "rodamientos")
public class Rodamiento {

	@Id
	private int idRodamiento;
	private long nroSerie;
	private String sufijo;
	private String marca;
	private String pais;

	public Rodamiento() {
		super();
	}

	public Rodamiento(int idRodamiento, long nroSerie, String sufijo, String marca, String pais) {
		super();
		this.idRodamiento = idRodamiento;
		this.nroSerie = nroSerie;
		this.sufijo = sufijo;
		this.marca = marca;
		this.pais = pais;
	}

	public Rodamiento(long nroSerie, String sufijo, String marca, String pais) {
		super();
		this.nroSerie = nroSerie;
		this.sufijo = sufijo;
		this.marca = marca;
		this.pais = pais;
	}
	
	public long getNroSerie() {
		return nroSerie;
	}

	public void setNroSerie(long nroSerie) {
		this.nroSerie = nroSerie;
	}

	public String getSufijo() {
		return sufijo;
	}

	public void setSufijo(String sufijo) {
		this.sufijo = sufijo;
	}

	public String getMarca() {
		return marca;
	}

	public void setMarca(String marca) {
		this.marca = marca;
	}

	public String getPais() {
		return pais;
	}

	public void setPais(String pais) {
		this.pais = pais;
	}

	public int getIdRodamiento() {
		return idRodamiento;
	}

	public void setIdRodamiento(int idRodamiento) {
		this.idRodamiento = idRodamiento;
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + idRodamiento;
		result = prime * result + ((marca == null) ? 0 : marca.hashCode());
		result = prime * result + (int) (nroSerie ^ (nroSerie >>> 32));
		result = prime * result + ((pais == null) ? 0 : pais.hashCode());
		result = prime * result + ((sufijo == null) ? 0 : sufijo.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Rodamiento other = (Rodamiento) obj;
		if (idRodamiento != other.idRodamiento)
			return false;
		if (marca == null) {
			if (other.marca != null)
				return false;
		} else if (!marca.equals(other.marca))
			return false;
		if (nroSerie != other.nroSerie)
			return false;
		if (pais == null) {
			if (other.pais != null)
				return false;
		} else if (!pais.equals(other.pais))
			return false;
		if (sufijo == null) {
			if (other.sufijo != null)
				return false;
		} else if (!sufijo.equals(other.sufijo))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Rodamiento [idRodamiento=" + idRodamiento + ", nroSerie=" + nroSerie + ", sufijo=" + sufijo + ", marca="
				+ marca + ", pais=" + pais + "]";
	}

	public RodamientoDTO getDTO() {
		// TODO Auto-generated method stub
		return null;
	}

}
